﻿//.....................................扩展方法.........................
(function ($) {
    //菜单互动
    $("a.item").click(function () {
        $(this).addClass('active').siblings().removeClass('active');
    });
    $('.ui.dropdown').dropdown();
    //鼠标点击切换提示
    $.fn.placeHold = function (holdText) {
        var self = this;
        self.val(holdText);
        self.focus(function () {
            var $this = $(this);
            var $thisVal = $.trim($this.val());
            if ($thisVal == holdText) {
                $this.val('');
            }
        }).blur(function () {
            var $this = $(this);
            var $thisVal = $.trim($this.val());
            if ($thisVal == '') {
                $this.val(holdText);
            }
        });
    };
    //只能输入数字框
    //allowDecimal是否允许小数点
    //invalidValue输入值非法时的默认值
    $.fn.number = function (allowDecimal, invalidValue) {
        invalidValue = invalidValue || '';
        var self = this;
        self.live('keypress', function (event) {
            // ie6,7,8,opera,chrome管用   
            if (!$.browser.mozilla) {
                if (event.keyCode && (event.keyCode < 48 || event.keyCode > 57)) {
                    if (!(allowDecimal && event.keyCode == 46)) {
                        event.preventDefault();
                    }
                }
            }
            else {// firefox管用   
                if (event.charCode && (event.charCode < 48 || event.charCode > 57)) {
                    if (!(allowDecimal && event.charCode == 46)) {
                        event.preventDefault();
                    }
                }
            }
        });
        self.live('blur', function () {
            var input = $(this);
            var v = parseFloat($.trim(input.val()));
            if (v.toString() == "NaN") {
                input.val(invalidValue);
            }
            else {
                input.val(v);
            }
        });
    };
})(jQuery);
//.....................................辅助方法.........................
var QiBu = QiBu || {};
QiBu.Api = QiBu.Api || {};
QiBu.Api.Common = QiBu.Api.Common || {};
//监听回车，实现搜索
QiBu.Api.Common.bindEnter = function (input, getBtn) {
    document.onkeydown = function (event_e) {
        if (window.event) {
            event_e = window.event;
        }
        var int_keycode = event_e.charCode || event_e.keyCode;
        var currentInputFocus = (event_e.target && event_e.target.id == input)
            || (event_e.srcElement && event_e.srcElement.id == 'key');
        if (int_keycode == '13' && currentInputFocus) {
            $("#" + getBtn).click();
            return false;
        }
    }
};
QiBu.Api.Common.validate = {
    /**
    * 检查字符串是否为合法QQ号码
    * @param {String} 字符串
    * @return {bool} 是否为合法QQ号码
    */
    isQQ: function (aQQ) {
        var bValidate = RegExp(/^[1-9][0-9]{4,9}$/).test(aQQ);
        if (bValidate) {
            return true;
        }
        else
            return false;
    },
    /**
    * 检查字符串是否为合法手机号码
    * @param {String} 字符串
    * @return {bool} 是否为合法手机号码
    */
    isMobile: function (aPhone) {
        var bValidate = RegExp(/^(13[0-9]|15[012356789]|17[0-9]|18[0-9]|14[57])[0-9]{8}$/).test(aPhone);
        if (bValidate) {
            return true;
        }
        else
            return false;
    },
    /**
    * 检查字符串是否为合法email地址
    * @param {String} 字符串
    * @return {bool} 是否为合法email地址
    */
    isEmail: function (aEmail) {
        var bValidate = RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(aEmail);
        if (bValidate) {
            return true;
        }
        else
            return false;
    },
    /**
    * 检查字符串是否是整数
    * @param {String} 字符串
    * @return {bool} 是否是整数
    */
    isInteger: function (s) {
        var isInteger = RegExp(/^[0-9]+$/);
        return (isInteger.test(s));
    },
    /*
        判断字符类型
    */
    CharMode: function (iN) {
        if (iN >= 48 && iN <= 57) //数字  
            return 1;
        if (iN >= 65 && iN <= 90) //大写字母  
            return 2;
        if (iN >= 97 && iN <= 122) //小写  
            return 4;
        else
            return 8; //特殊字符  
    },
    /*
        统计字符类型
    */
    bitTotal: function (num) {
        modes = 0;
        for (i = 0; i < 4; i++) {
            if (num & 1) modes++;
            num >>>= 1;
        }
        return modes;
    },
    /*
        返回密码的强度级别
    */
    checkStrong: function (sPW) {
        if (sPW.length <= 4)
            return 0; //密码太短  
        Modes = 0;
        for (i = 0; i < sPW.length; i++) {
            //测试每一个字符的类别并统计一共有多少种模式.  
            Modes |= CharMode(sPW.charCodeAt(i));
        }
        return bitTotal(Modes);
    }
};